# First startup # Safety Instructions (Must Read) > πŸ’‘ - **Hardware Usage Guidelines (Preventing Damage)** - Please use the included **USB-A** power cable (**5A**). Do not use power supplies below **3A** current (such as phone chargers), as this may cause the smart single-board computer to be underpowered and crash frequently. If external high-power modules (e.g., motors) are needed, power them separately. Do not draw power from the smart single-board computer **USB** port or **GPIO** port (to avoid overloading and damaging the board). - Always disconnect power before plugging or unplugging accessories (such as camera FPC cables or Ethernet cables). Hot-plugging may damage interface chips. The **USB-C** port is for firmware flashing and host mode communication only β€” do not use it to power the board. - Operating temperature:**-20 ~ +70 Β°C**. Do not use the device in high-temperature (e.g., direct sunlight), high-humidity (humidity >**80%**), or dusty environments. Before handling, touch a metal object to discharge static electricity; avoid touching chip pins on the board with bare hands. - **System and Software Precautions** - Only official system images provided by Quectel are supported. Do not flash images intended for other boards (e.g., Raspberry Pi), as this will cause driver incompatibility and boot failures. - When installing software, use the **apt** command to download from official repositories. Avoid installing packages from unknown sources to prevent system compromise or crashes. # What You Need Depending on the usage scenario, there are two configuration options: **External** Display and ADB **Connection**. √ = Required, β—‹ = Optional. | **Accessories** | **Specification** | **External Display** | **ADB Connection** | | --- | --- | --- | --- | | Quectel Pi M1/L1 smart single-board computer | β€” | √ | √ | | Power Adapter | 5V/5A or 9V/3A PD | √ | √ | | Ethernet Cable | Connect to router, or use Wi-Fi | β—‹ | β—‹ | | Display | PC / Laptop / MIPI screen | √ | β—‹ | | USB-C DP / HDMI Cable | Connect to Display | β—‹ | β—‹ | | Keyboard/Mouse | USB wired/wireless | √ | √ | | PC / Laptop | For running terminal software | β—‹ | √ | | USB Type-C to USB Type-A Data Cable | Connect board to PC | β—‹ | √ | # Pre-Power-On Preparation **Quectel Pi M1/L1 smart single-board computer has 2 DIP switches. Set both DIP switch 1 and DIP switch 2 to the OFF position, as shown below.** | **Note: tips** | | --- | | This demonstration uses the Quectel Pi M1 smart single-board computer. The Quectel Pi L1 smart single-board computer operations are the same as for the M1. | **DIP Switch States:** | **

DIP Switch
** | **

Switch set to ON
** | **

Switch set to OFF
** | | --- | --- | --- | |

DIP Switch 1
|

USB host mode β€” supports Type-A ports, Ethernet, and ADB; mouse and keyboard can be connected
|

USB device mode β€” for ADB debugging only; Type-A ports and Ethernet are not available
| |

DIP Switch 2
|

System boots into USB download mode
|

Normal system boot
| ```{image} images/image_XaqYbDB5uoeuVuxYwVZc7wq1n1f.webp :width: 741px :height: 475px :align: center ``` # **Choose Your Setup Scenario** Quectel Pi M1/L1 smart single-board computer ships with Debian 13 pre-installed β€” no image flashing is required. Choose the appropriate startup method based on your equipment: | **Scenario** | **Applicable Conditions** | **Reference** | | --- | --- | --- | | **With External Display** | Has HDMI/USB-C DP/MIPI display, keyboard and mouse | [External Display Boot the Board](#scenario-1-external-display-boot-the-board) | | **Without External Display** | No display device; only a USB-C data cable and a computer | [Without Display Boot the Board](#scenario-2-without-display-boot-the-board) | ## Scenario 1: External Display Boot the Board ### Hardware Connection > ⚠️ **Warning: Disconnect all power sources before making connections. Hot-plugging interfaces may cause hardware damage!** ```{image} images/image_VZjpbfjA3oDo2YxZcMMcRRfqneb.webp :width: 1033px :height: 713px :align: center ``` 1. **Display Connection:** Select the connection method based on the display's interface. Here we use Method 2: connect one end of the Micro HDMI cable to the board's Micro HDMI port and the other end to the display's HDMI port. - Method 1 (HD): Connect one end of the **FPC** cable to the **Quectel Pi M1/L1**'s MIPIport, and the other end to the display's **MIPI** port. For details, refer to the [MIPI](<../../User Guide/Display/MIPI/MIPI.md>)。 - Method 2 (Compatible): Connect one end of the **HDMI** cable to the **Quectel Pi M1/L1**'s HDMI port, and the other end to the display's **HDMI** port. 2. **Network Connection**: Connect with an Ethernet Cable to **Quectel Pi M1/L1** Ethernet port to a router's **LAN** port using an Ethernet cable. 3. **Peripheral Connection**: Connect the **USB** Plug the USB keyboard and mouse into the two **Quectel Pi M1/L1** two **USB-A** ports on the Quectel Pi M1/L1. For wireless keyboard/mouse, insert the receiver into a **USB** port using an Ethernet cable. 4. **Power Connection**: Finally, connect the **USB-A** power cable's **USB-A** end to the power adapter, and the **USB-C** end to **Quectel Pi M1/L1** end to the smart single-board computer's power port. ### System Boot > ⚠️ After connecting power, press and hold the **Quectel Pi M1/L1** on the right side of the **PWRKEY** button on the right side of the Quectel Pi M1/L1 for 3–5 seconds until the system starts. > ```{image} images/image_JETRbFSh0oYKN7xmy33cLhRXnKe.webp :width: 785px :height: 454px :align: center ``` - Turn on the display and confirm the input source is set to the correct port (e.g.,USB-C or HDMI). - Quectel Pi M1 smart single-board computer Boot Indicators **:** After connecting **Quectel Pi M1** power (plug in the power cable), the **Quectel Pi M1** power LED (typically blue) stays on, and the system LED (typically blue) turns on then off, indicating the system is booting. - Quectel Pi L1 smart single-board computer Boot Indicators: After connecting power to **Quectel Pi L1** power (plug in the power cable), the **Quectel Pi L1** power LED (typically blue) stays on, and the system LED (typically blue) turns on then blinks, indicating the system is booting. - Wait approximately **1** minute(s), and the display will show the system desktop. ### **Quectel Pi M1 smart single-board computer System Login** For login username and password settings, refer to the [System Login](<../../Operating System/Debian(Gnome)/System Login/System Login.md>) section. ```{note} The ***root*** account has no password by default. Please set the password before use. If you open the **Enterprise Login** interface while creating a user and cannot exit, click **Enterprise Login** again to return to the user-creation screen. ``` M1's Debian system uses the GNOME desktop by default. You can switch to the Weston desktop with the following command: ```bash qpi-config switch weston ``` ```{image} images/image_WW56bGBhpoD24dxMM7CcpFW6nGe.webp :width: 1280px :height: 800px :align: center ``` #### Language Settings Navigate to **System > Region & Language > Language > Select Language**. Log out and back in for changes to take effect. ```{note} If you switch the system language to Chinese, keep the old username after re-login; otherwise, you may be unable to access paths like `Desktop` and other paths. ``` ```{image} images/image_S05qbb7JvoMooaxraJqcmF2znJd.webp :width: 1280px :height: 800px :align: center ``` #### Network Settings In **Settings**, connect to Wi-Fi by selecting your network name and entering the password. ```{image} images/image_FTpLbbhr4oiF9Ex5unpcrPuAnOe.webp :width: 1280px :height: 800px :align: center ``` #### Opening the Terminal ```{image} images/image_Vv5kbm099oyhtCxgBnccUy98nde.webp :width: 1682px :height: 930px :align: center ``` ### **Quectel Pi L1 smart single-board computer System Login** L1's Debian system currently only supports the Weston desktop. ```{note} Click the icon in the upper-left corner to open the terminal. ``` ```{image} images/image_DuFZb7oHko1NOGxsztHcpGDcnuz.webp :width: 1088px :height: 816px :align: center ``` ## Scenario 2: Without Display Boot the Board If you have not connected a display, keyboard, and mouse to the Quectel Pi M1/L1 smart single-board computer, you can control it remotely from another computer. To remotely access the Quectel Pi M1/L1, connect it to the network first, then access it from a client on another device. Use **SSH** for remote command-line terminal access, or **RDP** for remote graphical desktop access. If the device is not yet connected to the network, use **ADB** for initial network configuration. For more remote access options, refer to [Device Connection](<../../User Guide/Device Connection/Device Connection.md>)。 | **Method** | **Description** | **Prerequisites** | **Tutorial** | | --- | --- | --- | --- | | RDP | Remote access to graphical desktop | Device connected to network | [RDP Remote Desktop](<../../User Guide/Device Connection/RDP Remote Desktop/RDP Remote Desktop.md>) | | SSH | Remote access to command-line terminal | Device connected to network | [SSH Remote Terminal](<../../User Guide/Device Connection/SSH Remote Terminal/SSH Remote Terminal.md>) | ```{note} On first boot, it is recommended to configure Wi-Fi via ADB first, then use RDP or SSH for daily operations. ``` ### ADB Setup #### Hardware Connection Prepare aUSB to Type-C to **Type-C** end to **Quectel Pi M1/L1**'s USB-C port on the Quectel Pi M1/L1, and the other end to your host computer. ```{note} DIP switch 1 must be set to ON, otherwise ADB will not work. ``` ```{image} images/image_VcLpbN0EYoIZWvxUVBecX0w8nre.webp :width: 794px :height: 523px :align: center ``` #### ADB Installation Download the ADB tool:[platform-tools]() 。 Extract the downloaded platform-tools to a folder on your computer. #### Verify ADB Device Recognition ```{image} images/image_LjRMbZEgEokBHoxnT7bcAGTanP9.webp :width: 972px :height: 663px :align: center ``` Open **platform-tools** folder, type **cmd** in the address bar, and press Enter to open the **adb** terminal. Run the following command: ```bash adb devices ``` Example output: ```plaintext List of devices attached 790c2fb9 device ``` #### Create a Regular User The default system only has the root user. It is recommended to create a regular user for daily operations. **Create User** The following example creates a user named `pi`. You may change the username as needed. ```bash # 'pi' is the username being created adduser pi ``` The system will interactively prompt you to set a password. Enter the password twice as prompted. ```{image} images/image_CQxSbL1oMoxT2OxO9evcSHOhnad.webp :width: 437px :height: 208px :align: center ``` After user creation, the system automatically generates `/home/username` as the user's home directory, where personal files and project code can be stored. **Grant sudo Privileges** ```bash usermod -aG sudo pi ``` **Switch User** ```bash # Verify user id pi #Switch User su - pi # Test privileges whoami sudo whoami # Should output 'root', confirming sudo privileges ``` #### Connect to Wi-Fi The board includes the built-in **`qpi-config`** tool for quick Wi-Fi management. **Scan for Nearby Wi-Fi Networks** ```bash qpi-config wifi scan ``` ```{image} images/image_Qoemb1COnoikcPxMGq7cirRInCb.webp :width: 457px :height: 82px :align: center ``` **Connect to Wi-Fi** ```bash # Connect to Wi-Fi qpi-config wifi connect "Your WiFi Name" "Your WiFi Password" # View saved Wi-Fi connections qpi-config wifi show # Remove a saved Wi-Fi connection qpi-config wifi remove ``` ```{image} images/image_Yl83bSItIomscgxO6ICcG6b7nQh.webp :width: 686px :height: 179px :align: center ``` **Verify Network Connectivity** ```plaintext ping www.google.com ``` #### Purpose **Android Debug Bridge**(**ADB**) is a **Android SDK** command-line tool provided by the Android SDK that establishes communication between a computer and an Android device (physical device or emulator), enabling device debugging, management, and development testing. ### Serial Console #### Hardware Connection > ⚠️When using a USB serial cable with the smart single-board computer for serial login, ensure the pin connections are correct. Incorrect pin connections may damage the hardware.
image
image
- Connection Method - Quectel Pi M1/L1 smart single-board computer's **GND** pin connects to the USB serial cable's **GND** pin - Quectel Pi M1/L1 smart single-board computer's **TXD** pin connects to the USB serial cable's **RXD** pin - Quectel Pi M1/L1 smart single-board computer's **RXD** pin connects to the USB serial cable's **TXD** pin #### Serial Login ```{note} The CH340 driver must be installed first; otherwise the serial port will not be recognized. ``` It is recommended to [**download the QPiTerminal tool**]() for serial connection. 1. Open Device Manager to check the serial port. 2. Double-click to open **QPiTerminal**, select **USB** serial port and set the baud rate to **115200**, then click **connect**。 ```{image} images/image_K6kzbFs4uoFvv8xBuVrcZNsGni1.webp :width: 1578px :height: 885px :align: center ``` 3. Enter the system username and password in the terminal to log in (the password will not be displayed during input; press **Enter** after entering the password to log in). Enter `ls` to test. Successful input confirms the serial connection is working; you can then view logs and run commands via the serial port for debugging. ```{image} images/image_CfKub1xJKoDbZtxCMjjcU34ynGh.webp :width: 617px :height: 129px :align: center ``` #### Purpose **Serial Console** is primarily used to view system logs and run debugging commands via serial connection, and serves as a backup method when the graphical interface is unavailable. It is an essential tool for embedded system development and maintenance, especially for low-level debugging and troubleshooting. ### SSH Connection to the smart single-board computer **Check Device IP Address** In the smart single-board computer terminal, execute the `sudo ifconfig` command to obtain the device's IP address. In this example, the device IP is `10.55.44.50`。 ```{image} images/image_Rzv0bK1kloodOIxCgd1cZfIoncc.webp :width: 633px :height: 147px :align: center ``` **Using the QPiTerminal Tool for SSH Connection to the smart single-board computer** Open a new SSH session, enter the smart single-board computer's IP address, username, and password, then click Connect (**Connect**)。 ```{image} images/image_RD9FbxzM8oiMoexa4hJcsu0bnOg.webp :width: 1498px :height: 811px :align: center ``` # System Health Check After the system boots, use the **qpi-config** command in the terminal to quickly check system status: ## Query Module Temperatures ```c sudo qpi-config dump temperature ``` ```{image} images/image_RE7ablPPDo7y97xuOPfcmpV1nhd.webp :width: 499px :height: 350px :align: center ``` ## Query CPU, Memory, and Storage Status ```bash sudo qpi-config dump systemusage ``` ```{image} images/image_PZiCbdCgnoXDKjxMFNYcyHnZnnc.webp :width: 498px :height: 522px :align: center ``` ## Network Status Check After connecting the device to the network via Ethernet or Wi-Fi, use the `ping` command to confirm the device can access external networks ```plaintext ping www.baidu.com ``` **Normal ConnectivityExample output:** ```plaintext PING www.a.shifen.com (183.2.172.177) 56(84) bytes of data. 64 bytes from 183.2.172.177: icmp_seq=1 ttl=51 time=18.5 ms 64 bytes from 183.2.172.177: icmp_seq=2 ttl=51 time=18.2 ms 64 bytes from 183.2.172.177: icmp_seq=3 ttl=51 time=18.3 ms 64 bytes from 183.2.172.177: icmp_seq=4 ttl=51 time=18.8 ms 64 bytes from 183.2.172.177: icmp_seq=5 ttl=51 time=18.2 ms 64 bytes from 183.2.172.177: icmp_seq=6 ttl=51 time=18.5 ms 64 bytes from 183.2.172.177: icmp_seq=7 ttl=51 time=18.9 ms --- www.a.shifen.com ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6011ms rtt min/avg/max/mdev = 18.199/18.482/18.901/0.249 ms ``` > **Indicator Descriptions:** > - `64 bytes from ...` β€” ICMP reply received, indicating normal network connectivity > - `icmp_seq` β€” Sequence number; responses are continuously received in increasing order > - `ttl` β€” Time to live; normal values range from 30 to 128 > - `time` β€” Round-trip latency; lower values indicate better network quality > - `0% packet loss` β€” Packet loss rate is 0%, indicating stable network ```{image} images/image_NZJKbrcTaoQzDQxiaJhc6MDYnWc.webp :width: 478px :height: 248px :align: center ``` # Your First Hello World ## Setting Up the Development Environment After logging into the Quectel Pi M1/L1 smart single-board computer system, open a terminal window, enter the following command, and press Enter to install the necessary development tools: ```bash sudo apt update && sudo apt install gcc make ``` ## Compiling and Running Hello World (C Version) 1. Open the system terminal and enter the command to create a hello.c file. ```shell touch hello.c ``` 2. Enter the following command to use the **vim** editor to open the **hello.c** file, ```shell sudo vim hello.c ``` 3. Copy the following code into the hello.c file, press "**ESC + Shift + :"**, then type **"wq "** to save the code and exit the vim editor. ```c #include int main(void) { printf("hello world\r\n"); return 0; } ``` 4. Execute the following command to compile the code: ```shell gcc hello.c -o hello ``` 5. Execute the following command to run the hello program: ```shell ./hello ``` 6. Program output: ```shell ./hello hello world ``` ## Compiling and Running Hello World (Python Version) In addition to C, you can also use Python to quickly implement a Hello World program. The system comes with Python pre-installed, so no additional interpreter installation is required. 1. Open the system terminal and enter the command to create a hello.py file. ```shell touch hello.py ``` 2. Enter the following command to use the **vim** editor to open the **hello.py** file.(M1You can also use the **Files** file manager to edit code in the desktop environment.) ```shell sudo vim hello.py ``` 3. Copy the following code into the **hello.py** file, press "**ESC + Shift + :"**, then type **"wq "** to save the code and exit the vim editor ```shell def main(): print("Hello, World!") if __name__ == "__main__": main() ``` 4. Python is an interpreted language β€” no compilation needed, just execute directly: ```shell python3 hello.py ``` 5. Program output: ```shell python3 hello.py Hello, World! ``` ## Purpose **Hello World Program** is primarily used to verify that the development environment is set up correctly. By writing, compiling, and running a simple C/Python program, it tests basic system functions including the compiler and runtime environment, making it a fundamental practice for getting started with embedded development. # Safe Shutdown and Reboot Quectel Pi M1 provides shutdown and reboot options via the desktop and command line. ## Shutdown via Desktop GUI If you are using an external display in a desktop environment: 1. Click the upper-right corner of the desktop. 2. select Power Off or Restart。 ```{image} images/image_VEn7bkgULoeQPzxGLvrcsf37nFJ.webp :width: 1280px :height: 800px :align: center ``` ## Shutdown via Command Line Quectel Pi M1/L1 can be shut down or rebooted from the terminal (local terminal, SSH, or ADB shell) using the following commands: **Shutdown** ```bash sudo poweroff ``` **Reboot** ```bash sudo reboot ``` ## Shutdown via Physical Button Press and hold the **PWRKEY** button on the right side of the Quectel Pi M1/L1 (approximately 3-5 seconds) to initiate a safe shutdown. # What's Next? After completing the getting-started experience, explore more features: - [Supported Accessories](<../../Supported Accessories/Supported Accessories.md>) - [User Guide](<../../User Guide/User Guide.md>) - [Operating System](<../../Operating System/Operating System.md>) - [Application Development](<../../Application Development/Application Development.md>) - [Edge Computing](<../../Edge Computing/Edge Computing.md>) - [Development Tools](<../../Development Tools/Development Tools.md>) - [Supported Features](<../../Supported Features/Supported Features.md>) - [FAQ](<../../FAQ/FAQ.md>)